<!DOCTYPE html><html lang="zh"><head><meta charset="utf-8"><meta name="X-UA-Compatible" content="IE=edge"><title>Py-ART教程之一:Py-ART简介 · Py-ART简易中文教程</title><meta name="description" content="Py-ART教程之一:Py-ART简介 - Syize"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" href="/images/favor.ico"><link rel="stylesheet" href="/css/gandalfr.css"><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/solarized-light.min.css"><link rel="search" type="application/opensearchdescription+xml" href="http://example.com/atom.xml" title="Py-ART简易中文教程"><meta name="generator" content="Hexo 5.2.0"><link rel="alternate" href="/atom.xml" title="Py-ART简易中文教程" type="application/atom+xml">
</head><body><div class="wrap"><header><a href="/" class="logo-link"><img src="/images/icon.ico" alt="logo"></a><ul class="nav nav-list"><li class="nav-list-item"><a href="/" target="_self" class="nav-list-link">BLOG</a></li><li class="nav-list-item"><a href="/archives/" target="_self" class="nav-list-link">ARCHIVE</a></li><li class="nav-list-item"><a href="/about/" target="_self" class="nav-list-link">ABOUT</a></li></ul></header><main class="container"><div class="post"><article class="post-block"><h1 class="post-title">Py-ART教程之一:Py-ART简介</h1><div class="tags"><a href="/tags/Py-ART/" class="tag-title">#Py-ART</a><a href="/tags/%E5%AE%89%E8%A3%85Py-ART/" class="tag-title">#安装Py-ART</a></div><div class="post-info">Oct 31, 2020</div><div class="post-content"><blockquote>
<p>翻译自 <a target="_blank" rel="noopener" href="https://arm-doe.github.io/pyart/">官方文档</a></p>
</blockquote>
<hr>
<h2 id="什么是PyArt"><a href="#什么是PyArt" class="headerlink" title="什么是PyArt?"></a>什么是PyArt?</h2><p>　　Python ARM Radar Toolkit，简称“Py-ART”，是一个包含了天气雷达算法和程序的Python第三方库。Py-ART一开始被大气辐射测量与气候研究机构（Atmospheric Radiation Measurement (ARM) Climate Research Facility）用来处理来自其降水与云雷达的测量数据，但是现在它已经被设计成可以被其他雷达和气候团队用来检验、处理和分析多种天气雷达数据的库。</p>
<h2 id="引用Py-ART"><a href="#引用Py-ART" class="headerlink" title="引用Py-ART"></a>引用Py-ART</h2><p>　　如果你在你的工作中使用了Py-ART，请在你的论文中注明它。开发者鼓励在你的论文中引用和注明它，并且引用下面的论文将会为你提供很大的帮助</p>
<blockquote>
<p>有关Py-ART的论文请引用 <a target="_blank" rel="noopener" href="https://openresearchsoftware.metajnl.com/articles/10.5334/jors.119/">Journal of Open Research Software</a></p>
<blockquote>
<p>Helmus, J.J. &amp; Collis, S.M., (2016). The Python ARM Radar Toolkit (Py-ART), a Library for Working with Weather Radar Data in the Python Programming Language. Journal of Open Research Software. 4(1), p.e25. DOI: <a target="_blank" rel="noopener" href="http://doi.org/10.5334/jors.119">http://doi.org/10.5334/jors.119</a></p>
</blockquote>
</blockquote>
<blockquote>
<p>有关开源雷达软件的论文请引用 <a target="_blank" rel="noopener" href="https://journals.ametsoc.org/bams/article/96/1/117/60479/The-Emergence-of-Open-Source-Software-for-the">BAMS</a> 中的 Maik Heistermann</p>
<blockquote>
<p>M. Heistermann, S. Collis, M. J. Dixon, S. Giangrande, J. J. Helmus, B. Kelley, J. Koistinen, D. B. Michelson, M. Peura, T. Pfaff, and D. B. Wolff, 2015: The Emergence of Open-Source Software for the Weather Radar Community. Bull. Amer. Meteor. Soc. 96, 117–128, doi: 10.1175/BAMS-D-13-00240.1.</p>
</blockquote>
</blockquote>
<h2 id="Py-ART能做什么？"><a href="#Py-ART能做什么？" class="headerlink" title="Py-ART能做什么？"></a>Py-ART能做什么？</h2><p>　　Py-ART能够读取许多常见天气雷达的档案数据，包括：Sigmet/IRIS, MDV, CF/Radial, UF, 和NEXRAD Level II，也能将雷达数据写成符合CF/Radial规范的NetCDF文件<br>　　Py-ART也包含能够绘制常见的雷达图像（例如PPI图和RHI图）的程序</p>
<div align=center><img src="/images/PPI.jpg" width="400" alt="使用PyArt绘制的PPI图"></div>
<p></p>
<div align=center><img src="/images/RHI.jpg" alt="使用PyArt绘制的RHI图"></div>

<p>　　库中的算法能够在雷达天线进行调整时对雷达的瞬时数据进行一系列的修正。包括：反射率的修正，退模糊以及correction of the specific (kdp) and differential (phidp) phases<br>　　复杂的画图程序能够利用来自一个或多个雷达的数据精准统一地在笛卡尔坐标系中绘制出雷达场，也能够将这些图像保存进NetCDF文件中</p>
<h2 id="快速学习"><a href="#快速学习" class="headerlink" title="快速学习"></a>快速学习</h2><p>　　下面是有关Py-ART和开源雷达软件的包含数据以及示例的简易教程</p>
<blockquote>
<p><a target="_blank" rel="noopener" href="https://github.com/openradar/AMS-Short-Course-on-Open-Source-Radar-Software">2015 AMS, Open Source Radar Short Course</a><br><a target="_blank" rel="noopener" href="https://github.com/ARM-DOE/notebooks/tree/master/ASR_PI_2015">2015 ARM/ASR Meeting, PyART, the Python ARM Radar Toolkit</a><br><a target="_blank" rel="noopener" href="https://github.com/ARM-DOE/notebooks/tree/master/ASR_PI_2014">2014 ARM/ASM Meeting, Py-ART tutorial</a><br><a target="_blank" rel="noopener" href="https://github.com/openradar/open_source_radar_short_course">2014 ERAD, Open Source Radar Short Course</a></p>
</blockquote>
<hr>
<h2 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h2><p>　　Py-ART能在Python 3.6，3.7以及3.8下工作，在使用之前应先安装以下所依赖的Python库  </p>
<blockquote>
<p><a target="_blank" rel="noopener" href="https://www.numpy.org/">Numpy</a><br><a target="_blank" rel="noopener" href="https://www.scipy.org/">Scipy</a><br><a target="_blank" rel="noopener" href="https://matplotlib.org/">matplotlib</a><br><a target="_blank" rel="noopener" href="https://github.com/Unidata/netcdf4-python">netCDF4</a>  </p>
</blockquote>
<h3 id="在Linux平台上安装"><a href="#在Linux平台上安装" class="headerlink" title="在Linux平台上安装"></a>在Linux平台上安装</h3><p>　　对于使用Linux的用户，可以使用pip很方便的安装Py-ART  </p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo pip3 install arm-pyart</span><br></pre></td></tr></table></figure>

<h3 id="在Windows平台上安装"><a href="#在Windows平台上安装" class="headerlink" title="在Windows平台上安装"></a>在Windows平台上安装</h3><p>　　如果你使用PyCharm，可以在PyCharm的设置中找到管理第三方库的管理器，并且很方便的在其中找到上述第三方库并安装（在此之前你可能需要设置Pypi的源以加快安装速度）<br>　　如果你是命令行的爱好者（不排除有这种用户），打开CMD，并输入如下代码：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pip install arm-pyart</span><br></pre></td></tr></table></figure>
<p>　　或者使用conda安装  </p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">conda install -c conda-forge arm_pyart</span><br></pre></td></tr></table></figure>
<p>　　在使用某些可选第三方库的时候你还会需要安装可以工作的C/C++编译器。使用 <a target="_blank" rel="noopener" href="http://scipy.org/install.html">Science Python distributions</a> 可以很简便的安装上述所有依赖的库。<a target="_blank" rel="noopener" href="https://www.anaconda.com/distribution/">Anaconda Compliers</a> 是由Anaconda免费提供的跨平台的（Windows, Linux 和 Mac) ，它将会安装上述所有的库。Anaconda也有自己的编译器，在使用某些可选库例如 CyLP 时会用到，你可以在这个网址中找到编译器的相关信息  </p>
<blockquote>
<p><a target="_blank" rel="noopener" href="https://docs.conda.io/projects/conda-build/en/latest/resources/compiler-tools.html">https://docs.conda.io/projects/conda-build/en/latest/resources/compiler-tools.html</a></p>
</blockquote>
<hr>
<h3 id="可选的功能"><a href="#可选的功能" class="headerlink" title="可选的功能"></a>可选的功能</h3><p>　　以上的Python库都是安装Py-ART之前必须安装的，安装以下的库可以获得额外的功能。</p>
<blockquote>
<p><a target="_blank" rel="noopener" href="https://trmm-fc.gsfc.nasa.gov/trmm_gv/software/rsl/">TRMM Radar Software Library(RSL)</a>.安装这个库以后，Py-ART能够从多种额外的格式中读取雷达数据(Lassen, McGill, Universal Format and RADTEC)并且能够自动进行多普勒退模糊的计算。RSL应该在安装Py-ART之前安装。如果RSL没有安装在默认路径(/usr/local/trmm/)，那么你应该设置环境变量使其指向RSL的安装位置，例如anaconda的安装路径(/usr/anaconda3/envs/pyart_env).  </p>
</blockquote>
<blockquote>
<p>如果您想从HDF5文件中读取数据，你可以安装<a target="_blank" rel="noopener" href="https://www.h5py.org/">h5py</a>及其所依赖的库.  </p>
</blockquote>
<blockquote>
<p><strong>一个使用LP相位处理方法的线性求解程序和Python包装器</strong>。我们推荐使用<a target="_blank" rel="noopener" href="https://github.com/mpy/CyLP">CyLP</a>，因为它给出了最快的解决方法，除此之外你也可以使用<a target="_blank" rel="noopener" href="https://tfinley.net/software/pyglpk/">PyGLPK</a>和<a target="_blank" rel="noopener" href="https://cvxopt.org/">CVXOPT</a>。取决于使用的<strong>包装器，<a target="_blank" rel="noopener" href="https://projects.coin-or.org/Cbc">CBC</a>或<a target="_blank" rel="noopener" href="https://www.gnu.org/software/glpk/">GLPK</a>有时也是必须的</strong>。在使用<a target="_blank" rel="noopener" href="https://github.com/mpy/CyLP">CyLP</a>时，你需要设置 <em>COIN_INSTALL_DIR</em> 路径，加入一条指向<a target="_blank" rel="noopener" href="https://anaconda.org/conda-forge/coincbc">coincbc</a>的路径，例如(/usr/anaconda3/envs/pyart_env)  </p>
</blockquote>
<blockquote>
<p><a target="_blank" rel="noopener" href="https://scitools.org.uk/cartopy/docs/latest/">Cartopy</a>.安装这个库你可以在地理地图上绘制表格  </p>
</blockquote>
<blockquote>
<p><a target="_blank" rel="noopener" href="https://xarray.pydata.org/en/stable/">xarray</a>.安装这个库你可以在绘制的表格上使用表格数据  </p>
</blockquote>
<blockquote>
<p><a target="_blank" rel="noopener" href="https://matplotlib.org/basemap/">Basemap</a>.安装这个库也可以使你在地理地图上绘制表格，但是我们更推荐<a target="_blank" rel="noopener" href="https://scitools.org.uk/cartopy/docs/latest/">Cartopy</a>  </p>
</blockquote>
<blockquote>
<p><a target="_blank" rel="noopener" href="https://docs.wradlib.org/en/latest/">wradlib</a>.用来计算一个不同的相位场的结构  </p>
</blockquote>
<blockquote>
<p><a target="_blank" rel="noopener" href="https://docs.pytest.org/en/latest/">pytest</a>.用来运行Py-ART的单元测试  </p>
</blockquote>
<blockquote>
<p><a target="_blank" rel="noopener" href="https://pypi.python.org/pypi/GDAL/">gdal</a>.用来将表格对象输出为GeoTIFFs  </p>
</blockquote>
<hr>
<h2 id="获得帮助"><a href="#获得帮助" class="headerlink" title="获得帮助"></a>获得帮助</h2><p>　　Py-ART有一个<a target="_blank" rel="noopener" href="https://groups.google.com/forum/#!forum/pyart-users">论坛</a>，在这里你可以提出问题，寻求帮助  </p>
<blockquote>
<p><strong>请注意，该论坛为Google论坛，大陆无法访问</strong>  </p>
</blockquote>
<h2 id="加入我们"><a href="#加入我们" class="headerlink" title="加入我们"></a>加入我们</h2><p>　　Py-ART是一个遵循开源协议<a target="_blank" rel="noopener" href="https://opensource.org/licenses/BSD-3-Clause">New BSD</a>的开源软件，其源码已在<a target="_blank" rel="noopener" href="https://github.com/ARM-DOE/pyart">Github</a>公开。你可以在<a target="_blank" rel="noopener" href="https://github.com/ARM-DOE/pyart/issues">Issue</a>板块提交需求以及反馈Bug。我们非常欢迎您帮助我们改进，贡献代码。更多详细信息请查看<a target="_blank" rel="noopener" href="https://arm-doe.github.io/pyart/contributors_guide.html">指导手册</a></p>
<blockquote>
<p>本教程遵循GPL开源协议，转载请标明本博客地址:<a target="_blank" rel="noopener" href="https://syize.gitee.io/">https://syize.gitee.io/</a>  </p>
</blockquote>
</div></article></div></main><footer><div class="paginator"><a href="/2020/10/31/mapping_examples/" class="next">NEXT</a></div><div class="copyright"><p>© 2020 <a href="http://example.com">Syize</a>, powered by <a href="https://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/MikeCoder/hexo-theme-gandalfr" target="_blank">hexo-theme-gandalfr</a>.</p></div></footer></div><script src="//cdn.bootcss.com/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML" integrity="sha384-crwIf/BuaWM9rM65iM+dWFldgQ1Un8jWZMuh3puxb8TOY9+linwLoI7ZHZT+aekW" crossorigin="anonymous"></script><script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/highlight.min.js" crossorigin="anonymous"></script><script src="//cdn.bootcss.com/jquery/3.1.1/jquery.js" crossorigin="anonymous"></script><script>$(document).ready(function() { hljs.configure({useBR: true}); $('pre').each(function(i, block) { hljs.highlightBlock(block); }); });</script></body></html>